/**
 * Copyright 2009 Erick Armbrust 
 * Licensed under the Apache License, Version 2.0 (the "License"); 
 * you may not use this file except in compliance with the License. 
 * You may obtain a copy of the License at 
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0 
 *   
 * Unless required by applicable law or agreed to in writing, software 
 * distributed under the License is distributed on an "AS IS" BASIS, 
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
 * See the License for the specific language governing permissions and 
 * limitations under the License. 
 */

package tapioca;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

import junit.framework.TestCase;
import junit.framework.TestSuite;
import au.com.bytecode.opencsv.CSVWriter;

/**
 * Runs all tapioca tests and outputs datastore stats.
 *
 * @author armbrust@gmail.com (Erick Armbrust)
 */
public class AllTestsWithStats extends TestCase {
  
  static {
    String performanceSuffix = String.valueOf(System.currentTimeMillis());
    System.setProperty("performanceSuffix", performanceSuffix);
    try {
      String filename = "output" + File.separator + "performance-" + performanceSuffix + ".csv";
      CSVWriter writer = new CSVWriter(new FileWriter(filename, true));
      writer.writeNext(new String[] {
          "",
          "Get Requests", "Get Entities",
          "Put Requests", "Put Entities",
          "Delete Requests", "Delete Entities",
          "ID Allocations"
      });
      writer.close();
    } catch (IOException e) {
      // Ignore exceptions.
    }    
  }
  
  public static TestSuite suite() {
    TestSuite suite = new TestSuite();
    suite.addTest(AllTests.suite());
    return suite;
  }
  
}
